package generics.and.colecctions.genericas;

import java.util.ArrayList;
import java.util.List;

public class ClaseNormalMetodoGenerico {

	public static void main(String[] args) {

		// Parámetro de entrada
		List<SubClaseEjm> listaSub = new ArrayList<SubClaseEjm>();

		// variable de retorno del metodo metodo1
		SuperClaseEjm superClase = new SuperClaseEjm();
		superClase = metodo1(listaSub);
	}

	public static <L, M extends L> L metodo1(List<M> lista) {
		L retorno;

		if (lista == null || lista != null && lista.isEmpty()) {
			retorno = null;
		} else {
			retorno = lista.get(0);
		}

		return retorno;

	}
}

class SuperClaseEjm {

}

class SubClaseEjm extends SuperClaseEjm {

}